package org.example.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.example.entity.DictItemEntity;
import org.example.service.DictItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 数据字典表 Controller
 */
@RestController
@RequestMapping("/api/dict-item")
public class DictItemController {

    @Autowired
    private DictItemService dictItemService;

    /**
     * 获取数据字典列表（分页）
     *
     * @param page 当前页码
     * @param size 每页大小
     * @return 分页数据
     */
    @GetMapping("/list")
    public IPage<DictItemEntity> list(@RequestParam int page, @RequestParam int size) {
        return dictItemService.page(new Page<>(page, size));
    }

    /**
     * 获取数据字典详情
     *
     * @param dictionaryId 数据字典ID
     * @return 数据字典详情
     */
    @GetMapping("/info/{dictionaryId}")
    public DictItemEntity info(@PathVariable Integer dictionaryId) {
        return dictItemService.getById(dictionaryId);
    }

    /**
     * 新增数据字典
     *
     * @param dictItemEntity 数据字典实体
     * @return 操作结果
     */
    @PostMapping("/add")
    public String add(@RequestBody DictItemEntity dictItemEntity) {
        boolean result = dictItemService.save(dictItemEntity);
        return result ? "新增成功" : "新增失败";
    }

    /**
     * 更新数据字典
     *
     * @param dictItemEntity 数据字典实体
     * @return 操作结果
     */
    @PutMapping("/update")
    public String update(@RequestBody DictItemEntity dictItemEntity) {
        boolean result = dictItemService.updateById(dictItemEntity);
        return result ? "更新成功" : "更新失败";
    }

    /**
     * 删除数据字典
     *
     * @param dictionaryId 数据字典ID
     * @return 操作结果
     */
    @DeleteMapping("/delete/{dictionaryId}")
    public String delete(@PathVariable Integer dictionaryId) {
        boolean result = dictItemService.removeById(dictionaryId);
        return result ? "删除成功" : "删除失败";
    }
}
